﻿
Перем Токены;
Перем Типы;
Перем ТаблицаТокенов;
Перем Исходник;
Перем ТаблицаЗамен;

Процедура Открыть(Парсер, Параметры) Экспорт
	Токены = Парсер.Токены();
	ТаблицаТокенов = Парсер.ТаблицаТокенов();
	Исходник = Парсер.Исходник();
	Типы = Парсер.Типы();
	ТаблицаЗамен = Парсер.ТаблицаЗамен();
КонецПроцедуры // Открыть()

Функция Закрыть() Экспорт
	Возврат Неопределено;
КонецФункции // Закрыть()

Функция Подписки() Экспорт
	Перем Подписки;
	Подписки = Новый Массив;
	Подписки.Добавить("ПокинутьОператоры");
	Возврат Подписки;
КонецФункции // Подписки()

#Область РеализацияПодписок

Процедура ПокинутьОператоры(Операторы) Экспорт

	Для Каждого Оператор Из Операторы Цикл

		ПоследнийТокен = Оператор.Конец;
		СледующийТокен = ТаблицаТокенов[Оператор.Конец.Индекс + 1];

		Если СледующийТокен.Токен <> Токены.ТочкаСЗапятой И Не СтрНачинаетсяС(Оператор.Тип, "ИнструкцияПрепроцессора") Тогда

			Вставка(";", ПоследнийТокен.Позиция + ПоследнийТокен.Длина);

		КонецЕсли;

	КонецЦикла;

КонецПроцедуры // ПокинутьОператоры()

#КонецОбласти // РеализацияПодписок

Процедура Вставка(Текст, Позиция)
	НоваяЗамена = ТаблицаЗамен.Добавить();
	НоваяЗамена.Источник = "РасстановкаПропущенныхТочекСЗапятой";
	НоваяЗамена.Текст = Текст;
	НоваяЗамена.Позиция = Позиция;
	НоваяЗамена.Длина = 0;
КонецПроцедуры